package com.zoe.onelink.actuate.autoconfigure;

import com.zoe.onelink.actuate.check.ActuatorEnvironmentChecker;
import com.zoe.onelink.actuate.check.DatasourceEnvironmentChecker;
import com.zoe.onelink.actuate.check.DocEnvironmentChecker;
import com.zoe.onelink.actuate.check.DubboModuleChecker;
import com.zoe.onelink.actuate.check.NacosEnvironmentChecker;
import com.zoe.onelink.actuate.check.ZipkinEnvironmentChecker;
import com.zoe.onelink.plugin.check.EnvironmentChecker;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * <p>标题: </p>
 * <p>描述: </p>
 * <p>版权: Copyright (c) 2022</p>
 * <p>公司: 智业软件股份有限公司</p>
 *
 * @version: 1.0
 * @author: ruansheng
 * @date: 2022-09-20
 */
@ConditionalOnClass(EnvironmentChecker.class)
@Configuration(proxyBeanMethods = false)
public class OnelinkActuatorCheckerAutoConfiguration {

    @Bean
    public EnvironmentChecker actuatorPropertyChecker() {
        return new ActuatorEnvironmentChecker();
    }

    @Bean
    public EnvironmentChecker datasourcePropertyChecker() {
        return new DatasourceEnvironmentChecker();
    }

    @Bean
    public EnvironmentChecker docPropertyChecker() {
        return new DocEnvironmentChecker();
    }

    @Bean
    public EnvironmentChecker nacosPropertyChecker() {
        return new NacosEnvironmentChecker();
    }

    @Bean
    public EnvironmentChecker zipkinPropertyChecker() {
        return new ZipkinEnvironmentChecker();
    }

    @Bean
    public EnvironmentChecker dubboModuleChecker() {
        return new DubboModuleChecker();
    }

}
